//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined >> undefined);
write(undefined >> null);
write(undefined >> true);
write(undefined >> false);
write(undefined >> Boolean(true));
write(undefined >> Boolean(false));
write(undefined >> new Boolean(true));
write(undefined >> new Boolean(false));
write(undefined >> NaN);
write(undefined >> +0);
write(undefined >> -0);
write(undefined >> 0);
write(undefined >> 0.0);
write(undefined >> -0.0);
write(undefined >> +0.0);
write(undefined >> 1);
write(undefined >> 10);
write(undefined >> 10.0);
write(undefined >> 10.1);
write(undefined >> -1);
write(undefined >> -10);
write(undefined >> -10.0);
write(undefined >> -10.1);
write(undefined >> Number.MAX_VALUE);
write(undefined >> Number.MIN_VALUE);
write(undefined >> Number.NaN);
write(undefined >> Number.POSITIVE_INFINITY);
write(undefined >> Number.NEGATIVE_INFINITY);
write(undefined >> new Number(NaN));
write(undefined >> new Number(+0));
write(undefined >> new Number(-0));
write(undefined >> new Number(0));
write(undefined >> new Number(0.0));
write(undefined >> new Number(-0.0));
write(undefined >> new Number(+0.0));
write(undefined >> new Number(1));
write(undefined >> new Number(10));
write(undefined >> new Number(10.0));
write(undefined >> new Number(10.1));
write(undefined >> new Number(-1));
write(undefined >> new Number(-10));
write(undefined >> new Number(-10.0));
write(undefined >> new Number(-10.1));
write(undefined >> new Number(Number.MAX_VALUE));
write(undefined >> new Number(Number.MIN_VALUE));
write(undefined >> new Number(Number.NaN));
write(undefined >> new Number(Number.POSITIVE_INFINITY));
write(undefined >> new Number(Number.NEGATIVE_INFINITY));
write(undefined >> '');
write(undefined >> 0xa);
write(undefined >> 04);
write(undefined >> 'hello');
write(undefined >> 'hel' + 'lo');
write(undefined >> String(''));
write(undefined >> String('hello'));
write(undefined >> String('h' + 'ello'));
write(undefined >> new String(''));
write(undefined >> new String('hello'));
write(undefined >> new String('he' + 'llo'));
write(undefined >> new Object());
write(undefined >> new Object());
write(undefined >> [1, 2, 3]);
write(undefined >> [1 ,2 , 3]);
write(undefined >> new Array(3));
write(undefined >> Array(3));
write(undefined >> new Array(1 ,2 ,3));
write(undefined >> Array(1));
write(undefined >> foo);
write(null >> undefined);
write(null >> null);
write(null >> true);
write(null >> false);
write(null >> Boolean(true));
write(null >> Boolean(false));
write(null >> new Boolean(true));
write(null >> new Boolean(false));
write(null >> NaN);
write(null >> +0);
write(null >> -0);
write(null >> 0);
write(null >> 0.0);
write(null >> -0.0);
write(null >> +0.0);
write(null >> 1);
write(null >> 10);
write(null >> 10.0);
write(null >> 10.1);
write(null >> -1);
write(null >> -10);
write(null >> -10.0);
write(null >> -10.1);
write(null >> Number.MAX_VALUE);
write(null >> Number.MIN_VALUE);
write(null >> Number.NaN);
write(null >> Number.POSITIVE_INFINITY);
write(null >> Number.NEGATIVE_INFINITY);
write(null >> new Number(NaN));
write(null >> new Number(+0));
write(null >> new Number(-0));
write(null >> new Number(0));
write(null >> new Number(0.0));
write(null >> new Number(-0.0));
write(null >> new Number(+0.0));
write(null >> new Number(1));
write(null >> new Number(10));
write(null >> new Number(10.0));
write(null >> new Number(10.1));
write(null >> new Number(-1));
write(null >> new Number(-10));
write(null >> new Number(-10.0));
write(null >> new Number(-10.1));
write(null >> new Number(Number.MAX_VALUE));
write(null >> new Number(Number.MIN_VALUE));
write(null >> new Number(Number.NaN));
write(null >> new Number(Number.POSITIVE_INFINITY));
write(null >> new Number(Number.NEGATIVE_INFINITY));
write(null >> '');
write(null >> 0xa);
write(null >> 04);
write(null >> 'hello');
write(null >> 'hel' + 'lo');
write(null >> String(''));
write(null >> String('hello'));
write(null >> String('h' + 'ello'));
write(null >> new String(''));
write(null >> new String('hello'));
write(null >> new String('he' + 'llo'));
write(null >> new Object());
write(null >> new Object());
write(null >> [1, 2, 3]);
write(null >> [1 ,2 , 3]);
write(null >> new Array(3));
write(null >> Array(3));
write(null >> new Array(1 ,2 ,3));
write(null >> Array(1));
write(null >> foo);
write(true >> undefined);
write(true >> null);
write(true >> true);
write(true >> false);
write(true >> Boolean(true));
write(true >> Boolean(false));
write(true >> new Boolean(true));
write(true >> new Boolean(false));
write(true >> NaN);
write(true >> +0);
write(true >> -0);
write(true >> 0);
write(true >> 0.0);
write(true >> -0.0);
write(true >> +0.0);
write(true >> 1);
write(true >> 10);
write(true >> 10.0);
write(true >> 10.1);
write(true >> -1);
write(true >> -10);
write(true >> -10.0);
write(true >> -10.1);
write(true >> Number.MAX_VALUE);
write(true >> Number.MIN_VALUE);
write(true >> Number.NaN);
write(true >> Number.POSITIVE_INFINITY);
write(true >> Number.NEGATIVE_INFINITY);
write(true >> new Number(NaN));
write(true >> new Number(+0));
write(true >> new Number(-0));
write(true >> new Number(0));
write(true >> new Number(0.0));
write(true >> new Number(-0.0));
write(true >> new Number(+0.0));
write(true >> new Number(1));
write(true >> new Number(10));
write(true >> new Number(10.0));
write(true >> new Number(10.1));
write(true >> new Number(-1));
write(true >> new Number(-10));
write(true >> new Number(-10.0));
write(true >> new Number(-10.1));
write(true >> new Number(Number.MAX_VALUE));
write(true >> new Number(Number.MIN_VALUE));
write(true >> new Number(Number.NaN));
write(true >> new Number(Number.POSITIVE_INFINITY));
write(true >> new Number(Number.NEGATIVE_INFINITY));
write(true >> '');
write(true >> 0xa);
write(true >> 04);
write(true >> 'hello');
write(true >> 'hel' + 'lo');
write(true >> String(''));
write(true >> String('hello'));
write(true >> String('h' + 'ello'));
write(true >> new String(''));
write(true >> new String('hello'));
write(true >> new String('he' + 'llo'));
write(true >> new Object());
write(true >> new Object());
write(true >> [1, 2, 3]);
write(true >> [1 ,2 , 3]);
write(true >> new Array(3));
write(true >> Array(3));
write(true >> new Array(1 ,2 ,3));
write(true >> Array(1));
write(true >> foo);
write(false >> undefined);
write(false >> null);
write(false >> true);
write(false >> false);
write(false >> Boolean(true));
write(false >> Boolean(false));
write(false >> new Boolean(true));
write(false >> new Boolean(false));
write(false >> NaN);
write(false >> +0);
write(false >> -0);
write(false >> 0);
write(false >> 0.0);
write(false >> -0.0);
write(false >> +0.0);
write(false >> 1);
write(false >> 10);
write(false >> 10.0);
write(false >> 10.1);
write(false >> -1);
write(false >> -10);
write(false >> -10.0);
write(false >> -10.1);
write(false >> Number.MAX_VALUE);
write(false >> Number.MIN_VALUE);
write(false >> Number.NaN);
write(false >> Number.POSITIVE_INFINITY);
write(false >> Number.NEGATIVE_INFINITY);
write(false >> new Number(NaN));
write(false >> new Number(+0));
write(false >> new Number(-0));
write(false >> new Number(0));
write(false >> new Number(0.0));
write(false >> new Number(-0.0));
write(false >> new Number(+0.0));
write(false >> new Number(1));
write(false >> new Number(10));
write(false >> new Number(10.0));
write(false >> new Number(10.1));
write(false >> new Number(-1));
write(false >> new Number(-10));
write(false >> new Number(-10.0));
write(false >> new Number(-10.1));
write(false >> new Number(Number.MAX_VALUE));
write(false >> new Number(Number.MIN_VALUE));
write(false >> new Number(Number.NaN));
write(false >> new Number(Number.POSITIVE_INFINITY));
write(false >> new Number(Number.NEGATIVE_INFINITY));
write(false >> '');
write(false >> 0xa);
write(false >> 04);
write(false >> 'hello');
write(false >> 'hel' + 'lo');
write(false >> String(''));
write(false >> String('hello'));
write(false >> String('h' + 'ello'));
write(false >> new String(''));
write(false >> new String('hello'));
write(false >> new String('he' + 'llo'));
write(false >> new Object());
write(false >> new Object());
write(false >> [1, 2, 3]);
write(false >> [1 ,2 , 3]);
write(false >> new Array(3));
write(false >> Array(3));
write(false >> new Array(1 ,2 ,3));
write(false >> Array(1));
write(false >> foo);
write(Boolean(true) >> undefined);
write(Boolean(true) >> null);
write(Boolean(true) >> true);
write(Boolean(true) >> false);
write(Boolean(true) >> Boolean(true));
write(Boolean(true) >> Boolean(false));
write(Boolean(true) >> new Boolean(true));
write(Boolean(true) >> new Boolean(false));
write(Boolean(true) >> NaN);
write(Boolean(true) >> +0);
write(Boolean(true) >> -0);
write(Boolean(true) >> 0);
write(Boolean(true) >> 0.0);
write(Boolean(true) >> -0.0);
write(Boolean(true) >> +0.0);
write(Boolean(true) >> 1);
write(Boolean(true) >> 10);
write(Boolean(true) >> 10.0);
write(Boolean(true) >> 10.1);
write(Boolean(true) >> -1);
write(Boolean(true) >> -10);
write(Boolean(true) >> -10.0);
write(Boolean(true) >> -10.1);
write(Boolean(true) >> Number.MAX_VALUE);
write(Boolean(true) >> Number.MIN_VALUE);
write(Boolean(true) >> Number.NaN);
write(Boolean(true) >> Number.POSITIVE_INFINITY);
write(Boolean(true) >> Number.NEGATIVE_INFINITY);
write(Boolean(true) >> new Number(NaN));
write(Boolean(true) >> new Number(+0));
write(Boolean(true) >> new Number(-0));
write(Boolean(true) >> new Number(0));
write(Boolean(true) >> new Number(0.0));
write(Boolean(true) >> new Number(-0.0));
write(Boolean(true) >> new Number(+0.0));
write(Boolean(true) >> new Number(1));
write(Boolean(true) >> new Number(10));
write(Boolean(true) >> new Number(10.0));
write(Boolean(true) >> new Number(10.1));
write(Boolean(true) >> new Number(-1));
write(Boolean(true) >> new Number(-10));
write(Boolean(true) >> new Number(-10.0));
write(Boolean(true) >> new Number(-10.1));
write(Boolean(true) >> new Number(Number.MAX_VALUE));
write(Boolean(true) >> new Number(Number.MIN_VALUE));
write(Boolean(true) >> new Number(Number.NaN));
write(Boolean(true) >> new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) >> new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) >> '');
write(Boolean(true) >> 0xa);
write(Boolean(true) >> 04);
write(Boolean(true) >> 'hello');
write(Boolean(true) >> 'hel' + 'lo');
write(Boolean(true) >> String(''));
write(Boolean(true) >> String('hello'));
write(Boolean(true) >> String('h' + 'ello'));
write(Boolean(true) >> new String(''));
write(Boolean(true) >> new String('hello'));
write(Boolean(true) >> new String('he' + 'llo'));
write(Boolean(true) >> new Object());
write(Boolean(true) >> new Object());
write(Boolean(true) >> [1, 2, 3]);
write(Boolean(true) >> [1 ,2 , 3]);
write(Boolean(true) >> new Array(3));
write(Boolean(true) >> Array(3));
write(Boolean(true) >> new Array(1 ,2 ,3));
write(Boolean(true) >> Array(1));
write(Boolean(true) >> foo);
write(Boolean(false) >> undefined);
write(Boolean(false) >> null);
write(Boolean(false) >> true);
write(Boolean(false) >> false);
write(Boolean(false) >> Boolean(true));
write(Boolean(false) >> Boolean(false));
write(Boolean(false) >> new Boolean(true));
write(Boolean(false) >> new Boolean(false));
write(Boolean(false) >> NaN);
write(Boolean(false) >> +0);
write(Boolean(false) >> -0);
write(Boolean(false) >> 0);
write(Boolean(false) >> 0.0);
write(Boolean(false) >> -0.0);
write(Boolean(false) >> +0.0);
write(Boolean(false) >> 1);
write(Boolean(false) >> 10);
write(Boolean(false) >> 10.0);
write(Boolean(false) >> 10.1);
write(Boolean(false) >> -1);
write(Boolean(false) >> -10);
write(Boolean(false) >> -10.0);
write(Boolean(false) >> -10.1);
write(Boolean(false) >> Number.MAX_VALUE);
write(Boolean(false) >> Number.MIN_VALUE);
write(Boolean(false) >> Number.NaN);
write(Boolean(false) >> Number.POSITIVE_INFINITY);
write(Boolean(false) >> Number.NEGATIVE_INFINITY);
write(Boolean(false) >> new Number(NaN));
write(Boolean(false) >> new Number(+0));
write(Boolean(false) >> new Number(-0));
write(Boolean(false) >> new Number(0));
write(Boolean(false) >> new Number(0.0));
write(Boolean(false) >> new Number(-0.0));
write(Boolean(false) >> new Number(+0.0));
write(Boolean(false) >> new Number(1));
write(Boolean(false) >> new Number(10));
write(Boolean(false) >> new Number(10.0));
write(Boolean(false) >> new Number(10.1));
write(Boolean(false) >> new Number(-1));
write(Boolean(false) >> new Number(-10));
write(Boolean(false) >> new Number(-10.0));
write(Boolean(false) >> new Number(-10.1));
write(Boolean(false) >> new Number(Number.MAX_VALUE));
write(Boolean(false) >> new Number(Number.MIN_VALUE));
write(Boolean(false) >> new Number(Number.NaN));
write(Boolean(false) >> new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) >> new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) >> '');
write(Boolean(false) >> 0xa);
write(Boolean(false) >> 04);
write(Boolean(false) >> 'hello');
write(Boolean(false) >> 'hel' + 'lo');
write(Boolean(false) >> String(''));
write(Boolean(false) >> String('hello'));
write(Boolean(false) >> String('h' + 'ello'));
write(Boolean(false) >> new String(''));
write(Boolean(false) >> new String('hello'));
write(Boolean(false) >> new String('he' + 'llo'));
write(Boolean(false) >> new Object());
write(Boolean(false) >> new Object());
write(Boolean(false) >> [1, 2, 3]);
write(Boolean(false) >> [1 ,2 , 3]);
write(Boolean(false) >> new Array(3));
write(Boolean(false) >> Array(3));
write(Boolean(false) >> new Array(1 ,2 ,3));
write(Boolean(false) >> Array(1));
write(Boolean(false) >> foo);
write(new Boolean(true) >> undefined);
write(new Boolean(true) >> null);
write(new Boolean(true) >> true);
write(new Boolean(true) >> false);
write(new Boolean(true) >> Boolean(true));
write(new Boolean(true) >> Boolean(false));
write(new Boolean(true) >> new Boolean(true));
write(new Boolean(true) >> new Boolean(false));
write(new Boolean(true) >> NaN);
write(new Boolean(true) >> +0);
write(new Boolean(true) >> -0);
write(new Boolean(true) >> 0);
write(new Boolean(true) >> 0.0);
write(new Boolean(true) >> -0.0);
write(new Boolean(true) >> +0.0);
write(new Boolean(true) >> 1);
write(new Boolean(true) >> 10);
write(new Boolean(true) >> 10.0);
write(new Boolean(true) >> 10.1);
write(new Boolean(true) >> -1);
write(new Boolean(true) >> -10);
write(new Boolean(true) >> -10.0);
write(new Boolean(true) >> -10.1);
write(new Boolean(true) >> Number.MAX_VALUE);
write(new Boolean(true) >> Number.MIN_VALUE);
write(new Boolean(true) >> Number.NaN);
write(new Boolean(true) >> Number.POSITIVE_INFINITY);
write(new Boolean(true) >> Number.NEGATIVE_INFINITY);
write(new Boolean(true) >> new Number(NaN));
write(new Boolean(true) >> new Number(+0));
write(new Boolean(true) >> new Number(-0));
write(new Boolean(true) >> new Number(0));
write(new Boolean(true) >> new Number(0.0));
write(new Boolean(true) >> new Number(-0.0));
write(new Boolean(true) >> new Number(+0.0));
write(new Boolean(true) >> new Number(1));
write(new Boolean(true) >> new Number(10));
write(new Boolean(true) >> new Number(10.0));
write(new Boolean(true) >> new Number(10.1));
write(new Boolean(true) >> new Number(-1));
write(new Boolean(true) >> new Number(-10));
write(new Boolean(true) >> new Number(-10.0));
write(new Boolean(true) >> new Number(-10.1));
write(new Boolean(true) >> new Number(Number.MAX_VALUE));
write(new Boolean(true) >> new Number(Number.MIN_VALUE));
write(new Boolean(true) >> new Number(Number.NaN));
write(new Boolean(true) >> new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) >> new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) >> '');
write(new Boolean(true) >> 0xa);
write(new Boolean(true) >> 04);
write(new Boolean(true) >> 'hello');
write(new Boolean(true) >> 'hel' + 'lo');
write(new Boolean(true) >> String(''));
write(new Boolean(true) >> String('hello'));
write(new Boolean(true) >> String('h' + 'ello'));
write(new Boolean(true) >> new String(''));
write(new Boolean(true) >> new String('hello'));
write(new Boolean(true) >> new String('he' + 'llo'));
write(new Boolean(true) >> new Object());
write(new Boolean(true) >> new Object());
write(new Boolean(true) >> [1, 2, 3]);
write(new Boolean(true) >> [1 ,2 , 3]);
write(new Boolean(true) >> new Array(3));
write(new Boolean(true) >> Array(3));
write(new Boolean(true) >> new Array(1 ,2 ,3));
write(new Boolean(true) >> Array(1));
write(new Boolean(true) >> foo);
write(new Boolean(false) >> undefined);
write(new Boolean(false) >> null);
write(new Boolean(false) >> true);
write(new Boolean(false) >> false);
write(new Boolean(false) >> Boolean(true));
write(new Boolean(false) >> Boolean(false));
write(new Boolean(false) >> new Boolean(true));
write(new Boolean(false) >> new Boolean(false));
write(new Boolean(false) >> NaN);
write(new Boolean(false) >> +0);
write(new Boolean(false) >> -0);
write(new Boolean(false) >> 0);
write(new Boolean(false) >> 0.0);
write(new Boolean(false) >> -0.0);
write(new Boolean(false) >> +0.0);
write(new Boolean(false) >> 1);
write(new Boolean(false) >> 10);
write(new Boolean(false) >> 10.0);
write(new Boolean(false) >> 10.1);
write(new Boolean(false) >> -1);
write(new Boolean(false) >> -10);
write(new Boolean(false) >> -10.0);
write(new Boolean(false) >> -10.1);
write(new Boolean(false) >> Number.MAX_VALUE);
write(new Boolean(false) >> Number.MIN_VALUE);
write(new Boolean(false) >> Number.NaN);
write(new Boolean(false) >> Number.POSITIVE_INFINITY);
write(new Boolean(false) >> Number.NEGATIVE_INFINITY);
write(new Boolean(false) >> new Number(NaN));
write(new Boolean(false) >> new Number(+0));
write(new Boolean(false) >> new Number(-0));
write(new Boolean(false) >> new Number(0));
write(new Boolean(false) >> new Number(0.0));
write(new Boolean(false) >> new Number(-0.0));
write(new Boolean(false) >> new Number(+0.0));
write(new Boolean(false) >> new Number(1));
write(new Boolean(false) >> new Number(10));
write(new Boolean(false) >> new Number(10.0));
write(new Boolean(false) >> new Number(10.1));
write(new Boolean(false) >> new Number(-1));
write(new Boolean(false) >> new Number(-10));
write(new Boolean(false) >> new Number(-10.0));
write(new Boolean(false) >> new Number(-10.1));
write(new Boolean(false) >> new Number(Number.MAX_VALUE));
write(new Boolean(false) >> new Number(Number.MIN_VALUE));
write(new Boolean(false) >> new Number(Number.NaN));
write(new Boolean(false) >> new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) >> new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) >> '');
write(new Boolean(false) >> 0xa);
write(new Boolean(false) >> 04);
write(new Boolean(false) >> 'hello');
write(new Boolean(false) >> 'hel' + 'lo');
write(new Boolean(false) >> String(''));
write(new Boolean(false) >> String('hello'));
write(new Boolean(false) >> String('h' + 'ello'));
write(new Boolean(false) >> new String(''));
write(new Boolean(false) >> new String('hello'));
write(new Boolean(false) >> new String('he' + 'llo'));
write(new Boolean(false) >> new Object());
write(new Boolean(false) >> new Object());
write(new Boolean(false) >> [1, 2, 3]);
write(new Boolean(false) >> [1 ,2 , 3]);
write(new Boolean(false) >> new Array(3));
write(new Boolean(false) >> Array(3));
write(new Boolean(false) >> new Array(1 ,2 ,3));
write(new Boolean(false) >> Array(1));
write(new Boolean(false) >> foo);
write(NaN >> undefined);
write(NaN >> null);
write(NaN >> true);
write(NaN >> false);
write(NaN >> Boolean(true));
write(NaN >> Boolean(false));
write(NaN >> new Boolean(true));
write(NaN >> new Boolean(false));
write(NaN >> NaN);
write(NaN >> +0);
write(NaN >> -0);
write(NaN >> 0);
write(NaN >> 0.0);
write(NaN >> -0.0);
write(NaN >> +0.0);
write(NaN >> 1);
write(NaN >> 10);
write(NaN >> 10.0);
write(NaN >> 10.1);
write(NaN >> -1);
write(NaN >> -10);
write(NaN >> -10.0);
write(NaN >> -10.1);
write(NaN >> Number.MAX_VALUE);
write(NaN >> Number.MIN_VALUE);
write(NaN >> Number.NaN);
write(NaN >> Number.POSITIVE_INFINITY);
write(NaN >> Number.NEGATIVE_INFINITY);
write(NaN >> new Number(NaN));
write(NaN >> new Number(+0));
write(NaN >> new Number(-0));
write(NaN >> new Number(0));
write(NaN >> new Number(0.0));
write(NaN >> new Number(-0.0));
write(NaN >> new Number(+0.0));
write(NaN >> new Number(1));
write(NaN >> new Number(10));
write(NaN >> new Number(10.0));
write(NaN >> new Number(10.1));
write(NaN >> new Number(-1));
write(NaN >> new Number(-10));
write(NaN >> new Number(-10.0));
write(NaN >> new Number(-10.1));
write(NaN >> new Number(Number.MAX_VALUE));
write(NaN >> new Number(Number.MIN_VALUE));
write(NaN >> new Number(Number.NaN));
write(NaN >> new Number(Number.POSITIVE_INFINITY));
write(NaN >> new Number(Number.NEGATIVE_INFINITY));
write(NaN >> '');
write(NaN >> 0xa);
write(NaN >> 04);
write(NaN >> 'hello');
write(NaN >> 'hel' + 'lo');
write(NaN >> String(''));
write(NaN >> String('hello'));
write(NaN >> String('h' + 'ello'));
write(NaN >> new String(''));
write(NaN >> new String('hello'));
write(NaN >> new String('he' + 'llo'));
write(NaN >> new Object());
write(NaN >> new Object());
write(NaN >> [1, 2, 3]);
write(NaN >> [1 ,2 , 3]);
write(NaN >> new Array(3));
write(NaN >> Array(3));
write(NaN >> new Array(1 ,2 ,3));
write(NaN >> Array(1));
write(NaN >> foo);
write(+0 >> undefined);
write(+0 >> null);
write(+0 >> true);
write(+0 >> false);
write(+0 >> Boolean(true));
write(+0 >> Boolean(false));
write(+0 >> new Boolean(true));
write(+0 >> new Boolean(false));
write(+0 >> NaN);
write(+0 >> +0);
write(+0 >> -0);
write(+0 >> 0);
write(+0 >> 0.0);
write(+0 >> -0.0);
write(+0 >> +0.0);
write(+0 >> 1);
write(+0 >> 10);
write(+0 >> 10.0);
write(+0 >> 10.1);
write(+0 >> -1);
write(+0 >> -10);
write(+0 >> -10.0);
write(+0 >> -10.1);
write(+0 >> Number.MAX_VALUE);
write(+0 >> Number.MIN_VALUE);
write(+0 >> Number.NaN);
write(+0 >> Number.POSITIVE_INFINITY);
write(+0 >> Number.NEGATIVE_INFINITY);
write(+0 >> new Number(NaN));
write(+0 >> new Number(+0));
write(+0 >> new Number(-0));
write(+0 >> new Number(0));
write(+0 >> new Number(0.0));
write(+0 >> new Number(-0.0));
write(+0 >> new Number(+0.0));
write(+0 >> new Number(1));
write(+0 >> new Number(10));
write(+0 >> new Number(10.0));
write(+0 >> new Number(10.1));
write(+0 >> new Number(-1));
write(+0 >> new Number(-10));
write(+0 >> new Number(-10.0));
write(+0 >> new Number(-10.1));
write(+0 >> new Number(Number.MAX_VALUE));
write(+0 >> new Number(Number.MIN_VALUE));
write(+0 >> new Number(Number.NaN));
write(+0 >> new Number(Number.POSITIVE_INFINITY));
write(+0 >> new Number(Number.NEGATIVE_INFINITY));
write(+0 >> '');
write(+0 >> 0xa);
write(+0 >> 04);
write(+0 >> 'hello');
write(+0 >> 'hel' + 'lo');
write(+0 >> String(''));
write(+0 >> String('hello'));
write(+0 >> String('h' + 'ello'));
write(+0 >> new String(''));
write(+0 >> new String('hello'));
write(+0 >> new String('he' + 'llo'));
write(+0 >> new Object());
write(+0 >> new Object());
write(+0 >> [1, 2, 3]);
write(+0 >> [1 ,2 , 3]);
write(+0 >> new Array(3));
write(+0 >> Array(3));
write(+0 >> new Array(1 ,2 ,3));
write(+0 >> Array(1));
write(+0 >> foo);
write(-0 >> undefined);
write(-0 >> null);
write(-0 >> true);
write(-0 >> false);
write(-0 >> Boolean(true));
write(-0 >> Boolean(false));
write(-0 >> new Boolean(true));
write(-0 >> new Boolean(false));
write(-0 >> NaN);
write(-0 >> +0);
write(-0 >> -0);
write(-0 >> 0);
write(-0 >> 0.0);
write(-0 >> -0.0);
write(-0 >> +0.0);
write(-0 >> 1);
write(-0 >> 10);
write(-0 >> 10.0);
write(-0 >> 10.1);
write(-0 >> -1);
write(-0 >> -10);
write(-0 >> -10.0);
write(-0 >> -10.1);
write(-0 >> Number.MAX_VALUE);
write(-0 >> Number.MIN_VALUE);
write(-0 >> Number.NaN);
write(-0 >> Number.POSITIVE_INFINITY);
write(-0 >> Number.NEGATIVE_INFINITY);
write(-0 >> new Number(NaN));
write(-0 >> new Number(+0));
write(-0 >> new Number(-0));
write(-0 >> new Number(0));
write(-0 >> new Number(0.0));
write(-0 >> new Number(-0.0));
write(-0 >> new Number(+0.0));
write(-0 >> new Number(1));
write(-0 >> new Number(10));
write(-0 >> new Number(10.0));
write(-0 >> new Number(10.1));
write(-0 >> new Number(-1));
write(-0 >> new Number(-10));
write(-0 >> new Number(-10.0));
write(-0 >> new Number(-10.1));
write(-0 >> new Number(Number.MAX_VALUE));
write(-0 >> new Number(Number.MIN_VALUE));
write(-0 >> new Number(Number.NaN));
write(-0 >> new Number(Number.POSITIVE_INFINITY));
write(-0 >> new Number(Number.NEGATIVE_INFINITY));
write(-0 >> '');
write(-0 >> 0xa);
write(-0 >> 04);
write(-0 >> 'hello');
write(-0 >> 'hel' + 'lo');
write(-0 >> String(''));
write(-0 >> String('hello'));
write(-0 >> String('h' + 'ello'));
write(-0 >> new String(''));
write(-0 >> new String('hello'));
write(-0 >> new String('he' + 'llo'));
write(-0 >> new Object());
write(-0 >> new Object());
write(-0 >> [1, 2, 3]);
write(-0 >> [1 ,2 , 3]);
write(-0 >> new Array(3));
write(-0 >> Array(3));
write(-0 >> new Array(1 ,2 ,3));
write(-0 >> Array(1));
write(-0 >> foo);
write(0 >> undefined);
write(0 >> null);
write(0 >> true);
write(0 >> false);
write(0 >> Boolean(true));
write(0 >> Boolean(false));
write(0 >> new Boolean(true));
write(0 >> new Boolean(false));
write(0 >> NaN);
write(0 >> +0);
write(0 >> -0);
write(0 >> 0);
write(0 >> 0.0);
write(0 >> -0.0);
write(0 >> +0.0);
write(0 >> 1);
write(0 >> 10);
write(0 >> 10.0);
write(0 >> 10.1);
write(0 >> -1);
write(0 >> -10);
write(0 >> -10.0);
write(0 >> -10.1);
write(0 >> Number.MAX_VALUE);
write(0 >> Number.MIN_VALUE);
write(0 >> Number.NaN);
write(0 >> Number.POSITIVE_INFINITY);
write(0 >> Number.NEGATIVE_INFINITY);
write(0 >> new Number(NaN));
write(0 >> new Number(+0));
write(0 >> new Number(-0));
write(0 >> new Number(0));
write(0 >> new Number(0.0));
write(0 >> new Number(-0.0));
write(0 >> new Number(+0.0));
write(0 >> new Number(1));
write(0 >> new Number(10));
write(0 >> new Number(10.0));
write(0 >> new Number(10.1));
write(0 >> new Number(-1));
write(0 >> new Number(-10));
write(0 >> new Number(-10.0));
write(0 >> new Number(-10.1));
write(0 >> new Number(Number.MAX_VALUE));
write(0 >> new Number(Number.MIN_VALUE));
write(0 >> new Number(Number.NaN));
write(0 >> new Number(Number.POSITIVE_INFINITY));
write(0 >> new Number(Number.NEGATIVE_INFINITY));
write(0 >> '');
write(0 >> 0xa);
write(0 >> 04);
write(0 >> 'hello');
write(0 >> 'hel' + 'lo');
write(0 >> String(''));
write(0 >> String('hello'));
write(0 >> String('h' + 'ello'));
write(0 >> new String(''));
write(0 >> new String('hello'));
write(0 >> new String('he' + 'llo'));
write(0 >> new Object());
write(0 >> new Object());
write(0 >> [1, 2, 3]);
write(0 >> [1 ,2 , 3]);
write(0 >> new Array(3));
write(0 >> Array(3));
write(0 >> new Array(1 ,2 ,3));
write(0 >> Array(1));
write(0 >> foo);
write(0.0 >> undefined);
write(0.0 >> null);
write(0.0 >> true);
write(0.0 >> false);
write(0.0 >> Boolean(true));
write(0.0 >> Boolean(false));
write(0.0 >> new Boolean(true));
write(0.0 >> new Boolean(false));
write(0.0 >> NaN);
write(0.0 >> +0);
write(0.0 >> -0);
write(0.0 >> 0);
write(0.0 >> 0.0);
write(0.0 >> -0.0);
write(0.0 >> +0.0);
write(0.0 >> 1);
write(0.0 >> 10);
write(0.0 >> 10.0);
write(0.0 >> 10.1);
write(0.0 >> -1);
write(0.0 >> -10);
write(0.0 >> -10.0);
write(0.0 >> -10.1);
write(0.0 >> Number.MAX_VALUE);
write(0.0 >> Number.MIN_VALUE);
write(0.0 >> Number.NaN);
write(0.0 >> Number.POSITIVE_INFINITY);
write(0.0 >> Number.NEGATIVE_INFINITY);
write(0.0 >> new Number(NaN));
write(0.0 >> new Number(+0));
write(0.0 >> new Number(-0));
write(0.0 >> new Number(0));
write(0.0 >> new Number(0.0));
write(0.0 >> new Number(-0.0));
write(0.0 >> new Number(+0.0));
write(0.0 >> new Number(1));
write(0.0 >> new Number(10));
write(0.0 >> new Number(10.0));
write(0.0 >> new Number(10.1));
write(0.0 >> new Number(-1));
write(0.0 >> new Number(-10));
write(0.0 >> new Number(-10.0));
write(0.0 >> new Number(-10.1));
write(0.0 >> new Number(Number.MAX_VALUE));
write(0.0 >> new Number(Number.MIN_VALUE));
write(0.0 >> new Number(Number.NaN));
write(0.0 >> new Number(Number.POSITIVE_INFINITY));
write(0.0 >> new Number(Number.NEGATIVE_INFINITY));
write(0.0 >> '');
write(0.0 >> 0xa);
write(0.0 >> 04);
write(0.0 >> 'hello');
write(0.0 >> 'hel' + 'lo');
write(0.0 >> String(''));
write(0.0 >> String('hello'));
write(0.0 >> String('h' + 'ello'));
write(0.0 >> new String(''));
write(0.0 >> new String('hello'));
write(0.0 >> new String('he' + 'llo'));
write(0.0 >> new Object());
write(0.0 >> new Object());
write(0.0 >> [1, 2, 3]);
write(0.0 >> [1 ,2 , 3]);
write(0.0 >> new Array(3));
write(0.0 >> Array(3));
write(0.0 >> new Array(1 ,2 ,3));
write(0.0 >> Array(1));
write(0.0 >> foo);
write(-0.0 >> undefined);
write(-0.0 >> null);
write(-0.0 >> true);
write(-0.0 >> false);
write(-0.0 >> Boolean(true));
write(-0.0 >> Boolean(false));
write(-0.0 >> new Boolean(true));
write(-0.0 >> new Boolean(false));
write(-0.0 >> NaN);
write(-0.0 >> +0);
write(-0.0 >> -0);
write(-0.0 >> 0);
write(-0.0 >> 0.0);
write(-0.0 >> -0.0);
write(-0.0 >> +0.0);
write(-0.0 >> 1);
write(-0.0 >> 10);
write(-0.0 >> 10.0);
write(-0.0 >> 10.1);
write(-0.0 >> -1);
write(-0.0 >> -10);
write(-0.0 >> -10.0);
write(-0.0 >> -10.1);
write(-0.0 >> Number.MAX_VALUE);
write(-0.0 >> Number.MIN_VALUE);
write(-0.0 >> Number.NaN);
write(-0.0 >> Number.POSITIVE_INFINITY);
write(-0.0 >> Number.NEGATIVE_INFINITY);
write(-0.0 >> new Number(NaN));
write(-0.0 >> new Number(+0));
write(-0.0 >> new Number(-0));
write(-0.0 >> new Number(0));
write(-0.0 >> new Number(0.0));
write(-0.0 >> new Number(-0.0));
write(-0.0 >> new Number(+0.0));
write(-0.0 >> new Number(1));
write(-0.0 >> new Number(10));
write(-0.0 >> new Number(10.0));
write(-0.0 >> new Number(10.1));
write(-0.0 >> new Number(-1));
write(-0.0 >> new Number(-10));
write(-0.0 >> new Number(-10.0));
write(-0.0 >> new Number(-10.1));
write(-0.0 >> new Number(Number.MAX_VALUE));
write(-0.0 >> new Number(Number.MIN_VALUE));
write(-0.0 >> new Number(Number.NaN));
write(-0.0 >> new Number(Number.POSITIVE_INFINITY));
write(-0.0 >> new Number(Number.NEGATIVE_INFINITY));
write(-0.0 >> '');
write(-0.0 >> 0xa);
write(-0.0 >> 04);
write(-0.0 >> 'hello');
write(-0.0 >> 'hel' + 'lo');
write(-0.0 >> String(''));
write(-0.0 >> String('hello'));
write(-0.0 >> String('h' + 'ello'));
write(-0.0 >> new String(''));
write(-0.0 >> new String('hello'));
write(-0.0 >> new String('he' + 'llo'));
write(-0.0 >> new Object());
write(-0.0 >> new Object());
write(-0.0 >> [1, 2, 3]);
write(-0.0 >> [1 ,2 , 3]);
write(-0.0 >> new Array(3));
write(-0.0 >> Array(3));
write(-0.0 >> new Array(1 ,2 ,3));
write(-0.0 >> Array(1));
write(-0.0 >> foo);
write(+0.0 >> undefined);
write(+0.0 >> null);
write(+0.0 >> true);
write(+0.0 >> false);
write(+0.0 >> Boolean(true));
write(+0.0 >> Boolean(false));
write(+0.0 >> new Boolean(true));
write(+0.0 >> new Boolean(false));
write(+0.0 >> NaN);
write(+0.0 >> +0);
write(+0.0 >> -0);
write(+0.0 >> 0);
write(+0.0 >> 0.0);
write(+0.0 >> -0.0);
write(+0.0 >> +0.0);
write(+0.0 >> 1);
write(+0.0 >> 10);
write(+0.0 >> 10.0);
write(+0.0 >> 10.1);
write(+0.0 >> -1);
write(+0.0 >> -10);
write(+0.0 >> -10.0);
write(+0.0 >> -10.1);
write(+0.0 >> Number.MAX_VALUE);
write(+0.0 >> Number.MIN_VALUE);
write(+0.0 >> Number.NaN);
write(+0.0 >> Number.POSITIVE_INFINITY);
write(+0.0 >> Number.NEGATIVE_INFINITY);
write(+0.0 >> new Number(NaN));
write(+0.0 >> new Number(+0));
write(+0.0 >> new Number(-0));
write(+0.0 >> new Number(0));
write(+0.0 >> new Number(0.0));
write(+0.0 >> new Number(-0.0));
write(+0.0 >> new Number(+0.0));
write(+0.0 >> new Number(1));
write(+0.0 >> new Number(10));
write(+0.0 >> new Number(10.0));
write(+0.0 >> new Number(10.1));
write(+0.0 >> new Number(-1));
write(+0.0 >> new Number(-10));
write(+0.0 >> new Number(-10.0));
write(+0.0 >> new Number(-10.1));
write(+0.0 >> new Number(Number.MAX_VALUE));
write(+0.0 >> new Number(Number.MIN_VALUE));
write(+0.0 >> new Number(Number.NaN));
write(+0.0 >> new Number(Number.POSITIVE_INFINITY));
write(+0.0 >> new Number(Number.NEGATIVE_INFINITY));
